The present invention relates to password security systems.
Many secure systems rely on the use of passwords to verify the identity or credentials of persons (or other objects such as computing processes) that request access to the system. An example of such a system is a multi-user computer system.
In those password-based security systems, security may be compromised if the passwords are easy to guess (common names are often good guesses for passwords), or if the passwords are written down so that they can be found by unauthorized users.
Passwords can be selected by the system management or by the users themselves. In either scheme there are strong possibilities for breaches of security.
System management may impose "secure" passwords that are not easy to guess (e.g., random sequences of nonsense syllables). However, the resulting passwords are often obscure and difficult to memorize. Typically, the users will write down such passwords rather than attempt to remember them. These written records can be found and misused by unauthorized persons.
In the alternative, the users may be allowed to select their own passwords. User-selected passwords are more likely to be memorizable, and thus the users will be less tempted to write them down. However, user-selected passwords are often easy to guess.
In one known scheme, the user chooses his or her password, but their "security" (or lack of obviousness) is verified by the system. In this way, all of the passwords used by the system are memorizable (at least to the user that chose them) but are also unobvious. Implementing such a scheme requires a method for checking the "validity" of passwords. One known method compares the password to a look-up table of invalid passwords (for example, the look-up table may include example passwords used in the software documentation). If a password is found in the table, the user is asked to change the password.